package com.fclassroom.logger.service;

import com.fclassroom.logger.entity.OperaterLog;
import com.fclassroom.logger.exception.LoggerException;

import java.util.List;

/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
             佛祖保佑       永无BUG
	佛曰:  
		写字楼里写字间，写字间里程序员；  
		程序人员写程序，又拿程序换酒钱。  
		酒醒只在网上坐，酒醉还来网下眠；  
		酒醉酒醒日复日，网上网下年复年。  
		但愿老死电脑间，不愿鞠躬老板前；  
		奔驰宝马贵者趣，公交自行程序员。  
		别人笑我忒疯癫，我笑自己命太贱；  
		不见满街漂亮妹，哪个归得程序员？
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
	@author jason
    @date   2016年1月15日 下午4:07:42
	Copyright (c) 2016,  email:14902300@qq.com All Rights Reserved. 
*/
public interface ProducerService {
	/**
	 * 对外提供发送消息的服务方法。
	 * 采集log4j的日志，发送消息到kafka
	 * @param messageKey
	 * @param messagePayload
	 */
	public void sendSystemLog(String messageKey, String messagePayload) throws LoggerException;
	/**
	 * 对外提供发送消息的服务方法。
	 * 采集log4j的日志，发送消息到kafka
	 * @param messageKey
	 * @param messagePayload
	 */
	public void sendOperaterLog(String messageKey, String messagePayload) throws LoggerException;
	/**
	 * 发送消息给ons的基础调用方法
	 * @param topic
	 * @param partition
	 * @param messageKey
	 * @param messagePayload
	 */
	public void send(String topic, Integer partition, String messageKey, String messagePayload)  throws LoggerException;

	/**
	 * 发送c操作日志
	 * @param operaterLog
	 * @author jiaofei
	 * @date 2017.1.22
     */
	void send(OperaterLog operaterLog);
	/**
	 * 多条发送c操作日志
	 * @param logRows
	 * @author jiaofei
	 * @date 2017.1.22
	 */
	void send(List<OperaterLog> logRows);
}
